home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 August / macformat-027.iso / mac / Shareware City / Developers / Oberon⁄F / Mac / Mod / TextEdit (.txt) < prev    next >
Encoding:
Oberon Document  |  1994-06-07  |  6.6 KB  |  172 lines  |  [oODC/obnF]

  1. Documents.StdDocumentDesc
  2. Documents.DocumentDesc
  3. Containers.ViewDesc
  4. Views.ViewDesc
  5. Stores.StoreDesc
  6. Documents.ModelDesc
  7. Containers.ModelDesc
  8. Models.ModelDesc
  9. Stores.ElemDesc
  10. TextViews.StdViewDesc
  11. TextViews.ViewDesc
  12. TextModels.StdModelDesc
  13. TextModels.ModelDesc
  14. TextModels.AttributesDesc
  15. Geneva
  16. Geneva
  17. Geneva
  18. Geneva
  19. MODULE MacTextEdit;
  20.     IMPORT SYSTEM, MacTypes, MacQuickDraw;
  21.     CONST
  22.         teJustLeft* = 0;
  23.         teJustCenter* = 1;
  24.         teJustRight* = -1;
  25.         TEScrpHandle = 0AB4H;
  26.         TEScrpLength = 0AB0H;
  27.         TEXT = 54455854H;
  28.         HANDLE = 2;
  29.         UNTAGGED = 1;
  30.         CODE = 1; NOSTKCHK = 4;
  31.         A0 = 8;
  32.     TYPE
  33.         Chars* = ARRAY [UNTAGGED] 32000 OF CHAR;
  34.         CharsPtr* = POINTER TO Chars;
  35.         CharsHandle* = POINTER [HANDLE] TO Chars;
  36.         TERec* = RECORD (MacTypes.Data)
  37.             destRect*: MacTypes.Rect;
  38.             viewRect*: MacTypes.Rect;
  39.             selRect*: MacTypes.Rect;
  40.             lineHeight*: INTEGER;
  41.             fontAscent*: INTEGER;
  42.             selPoint*: MacTypes.Point;
  43.             selStart*: INTEGER;
  44.             selEnd*: INTEGER;
  45.             active: INTEGER;
  46.             wordBreak*: MacTypes.ProcPtr;
  47.             clikLoop*: MacTypes.ProcPtr;
  48.             clickTime: LONGINT;
  49.             clickLoc: INTEGER;
  50.             caretTime: LONGINT;
  51.             caretState: INTEGER;
  52.             just*: INTEGER;
  53.             teLength*: INTEGER;
  54.             hText*: CharsHandle;
  55.             recalBack: INTEGER;
  56.             recalLines: INTEGER;
  57.             clikStuff: INTEGER;
  58.             crOnly*: INTEGER;
  59.             txFont*: INTEGER;
  60.             txFace*: MacTypes.Style;
  61.             txMode*: INTEGER;
  62.             txSize*: INTEGER;
  63.             inPort*: MacQuickDraw.GrafPtr;
  64.             highHook*: MacTypes.ProcPtr;
  65.             caretHook*: MacTypes.ProcPtr;
  66.             nLines*: INTEGER;
  67.             lineStarts*: ARRAY [UNTAGGED] 16000 OF INTEGER
  68.         END;
  69.         TEPtr* = POINTER TO TERec;
  70.         TEHandle* = POINTER [HANDLE] TO TERec;
  71.     PROCEDURE [CODE] PutScrap (length: LONGINT; theType: MacTypes.ResType;
  72.                                         source: MacTypes.Ptr): LONGINT 0A9H, 0FEH;
  73.     PROCEDURE [CODE] GetScrap (hDest: MacTypes.Handle; theType: MacTypes.ResType;
  74.                                         VAR offset: LONGINT): LONGINT 0A9H, 0FDH;
  75.     PROCEDURE [CODE] hLock 0A0H, 029H;
  76.     PROCEDURE [CODE] hUnlock 0A0H, 02AH;
  77.     PROCEDURE [NOSTKCHK] HLock (h: MacTypes.Handle);
  78.     BEGIN
  79.         SYSTEM.PUTREG(A0, h);
  80.         hLock
  81.     END HLock;
  82.     PROCEDURE [NOSTKCHK] HUnlock (h: MacTypes.Handle);
  83.     BEGIN
  84.         SYSTEM.PUTREG(A0, h);
  85.         hUnlock
  86.     END HUnlock;
  87.     (** Initialization and Allocation **)
  88.     PROCEDURE [CODE] TENew* (destRect, viewRect: MacTypes.Rect): TEHandle 0A9H, 0D2H;
  89.     PROCEDURE [CODE] TEDispose* (hTE: TEHandle) 0A9H, 0CDH;
  90.     (** Accessing the Text of an Edit Record **)
  91.     PROCEDURE [CODE] TESetText* (text: MacTypes.Ptr; length: LONGINT; hTE: TEHandle) 0A9H, 0CFH;
  92.     PROCEDURE [CODE] TEGetText* (hTE: TEHandle): CharsHandle 0A9H, 0CBH;
  93.     (** Insertion Point and Selection Range **)
  94.     PROCEDURE [CODE] TEIdle* (hTE: TEHandle) 0A9H, 0DAH;
  95.     PROCEDURE [CODE] TEClick* (pt: MacTypes.Point; extend: BOOLEAN; hTE: TEHandle) 0A9H, 0D4H;
  96.     PROCEDURE [CODE] TESetSelect* (selStart, selEnd: LONGINT; hTE: TEHandle) 0A9H, 0D1H;
  97.     PROCEDURE [CODE] TEActivate* (hTE: TEHandle) 0A9H, 0D8H;
  98.     PROCEDURE [CODE] TEDeactivate* (hTE: TEHandle) 0A9H, 0D9H;
  99.     (** Editing **)
  100.     PROCEDURE [CODE] TEKey* (key: MacTypes.UnpackedChar; hTE: TEHandle) 0A9H, 0DCH;
  101.     PROCEDURE [CODE] TECut* (hTE: TEHandle) 0A9H, 0D6H;
  102.     PROCEDURE [CODE] TECopy* (hTE: TEHandle) 0A9H, 0D5H;
  103.     PROCEDURE [CODE] TEPaste* (hTE: TEHandle) 0A9H, 0DBH;
  104.     PROCEDURE [CODE] TEDelete* (hTE: TEHandle) 0A9H, 0D7H;
  105.     PROCEDURE [CODE] TEInsert* (text: MacTypes.Ptr; length: LONGINT; hTE: TEHandle) 0A9H, 0DEH;
  106.     (** Text Display and Scrolling **)
  107.     PROCEDURE [CODE] TESetJust* (just: INTEGER; hTE: TEHandle) 0A9H, 0DFH;
  108.     PROCEDURE [CODE] TEUpdate* (rUpdate: MacTypes.Rect; hTE: TEHandle) 0A9H, 0D3H;
  109.     PROCEDURE [CODE] TextBox* (text: MacTypes.Ptr; length: LONGINT;
  110.                                          box: MacTypes.Rect; just: INTEGER) 0A9H, 0CEH;
  111.     PROCEDURE [CODE] TEScroll* (dh, dv: INTEGER; hTE: TEHandle) 0A9H, 0DDH;
  112.     (** Scrap Handling **)
  113.     PROCEDURE [NOSTKCHK] TEScrapHandle* (): MacTypes.Handle;
  114.         VAR handle: MacTypes.Handle;
  115.     BEGIN
  116.         SYSTEM.MOVE(TEScrpHandle, SYSTEM.ADR(handle), 4);
  117.         RETURN handle
  118.     END TEScrapHandle;
  119.     PROCEDURE [NOSTKCHK] TEGetScrapLen* (): LONGINT;
  120.         VAR length: LONGINT;
  121.     BEGIN
  122.         SYSTEM.MOVE(TEScrpLength, SYSTEM.ADR(length), 4);
  123.         RETURN length
  124.     END TEGetScrapLen;
  125.     PROCEDURE [NOSTKCHK] TESetScrapLen* (length: LONGINT);
  126.     BEGIN
  127.         SYSTEM.MOVE(SYSTEM.ADR(length), TEScrpLength, 4)
  128.     END TESetScrapLen;
  129.     PROCEDURE [NOSTKCHK] TEFromScrap* (): MacTypes.OSErr;
  130.         VAR scrap: MacTypes.Handle; res, off: LONGINT;
  131.     BEGIN
  132.         scrap := TEScrapHandle();
  133.         res := GetScrap(scrap, TEXT, off);
  134.         RETURN SHORT(res)
  135.     END TEFromScrap;
  136.     PROCEDURE [NOSTKCHK] TEToScrap* (): MacTypes.OSErr;
  137.         VAR scrap: MacTypes.Handle; res: LONGINT;
  138.     BEGIN
  139.         scrap := TEScrapHandle();
  140.         HLock(scrap);
  141.         res := PutScrap(TEGetScrapLen(), TEXT, scrap);
  142.         HUnlock(scrap);
  143.         RETURN SHORT(res)
  144.     END TEToScrap;
  145.     (** Advanced Routines **)
  146.     PROCEDURE [NOSTKCHK] SetWordBreak* (wBrkProc: MacTypes.ProcPtr; hTE: TEHandle);
  147.     BEGIN
  148.         hTE.wordBreak := wBrkProc
  149.     END SetWordBreak;
  150.     PROCEDURE [NOSTKCHK] SetClikLoop* (clikProc: MacTypes.ProcPtr; hTE: TEHandle);
  151.     BEGIN
  152.         hTE.clikLoop := clikProc
  153.     END SetClikLoop;
  154.     PROCEDURE [CODE] TECalText* (hTE: TEHandle) 0A9H, 0D0H;
  155.     (** 128K ROM **)
  156.     PROCEDURE [CODE] TESelView* (hTE: TEHandle) 0A8H, 011H;
  157.     PROCEDURE [CODE] TEPinScroll* (dh, dv: INTEGER; hTE: TEHandle) 0A8H, 012H;
  158.     PROCEDURE [CODE] TEAutoView* (auto: BOOLEAN; hTE: TEHandle) 0A8H, 013H;
  159.     PROCEDURE [CODE] TEInit*    0A9H, 0CCH;
  160. END MacTextEdit.
  161. TextControllers.StdCtrlDesc
  162. TextControllers.ControllerDesc
  163. Containers.ControllerDesc
  164. Controllers.ControllerDesc
  165. TextRulers.StdRulerDesc
  166. TextRulers.RulerDesc
  167. TextRulers.StdStyleDesc
  168. TextRulers.StyleDesc
  169. TextRulers.AttributesDesc
  170. Geneva
  171. Documents.ControllerDesc
  172.